package com.songlanyun.modules.marketing.groupbuy.model.dto;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.songlanyun.common.drive.ValueObject;
import com.songlanyun.modules.marketing.groupbuy.entity.GroupBuyActivityGoods;
import com.songlanyun.modules.marketing.groupbuy.entity.GroupBuyGoodsSku;
import com.songlanyun.modules.marketing.seckill.entity.SeckillGoodsSku;
import lombok.Data;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 拼团活动商品表
 *
 * @author Mark
 * @email sunlightcs@gmail.com
 * @date 2020-11-27 14:03:38
 */
@Data
public class GroupBuyActivityGoodsDTO implements ValueObject {

    /**
     * 商品id
     */
    @NotNull(message = "商品不能为空")
    private Long goodsId;
    /**
     * 拼团活动id
     */
    @NotNull(message = "拼团活动不能为空")
    private Long groupBuyId;
    /**
     * 0固定折扣,1固定减价
     */
    @NotNull(message = "活动打折方式不能为空")
    private Integer priceType;
    /**
     * 0固定折扣(只是起来批量设置的作用)
     */
    private BigDecimal discount;
    /**
     * 1固定减价（只是起到批量设置的做用）
     */
    private BigDecimal fixPrice;
    /**
     * 每人限购多少件，相同买家从此活动可购买总件数，填0代表不限制
     */
    @NotNull(message = "限购不能为空")
    private Integer limitBuyNum;
    /**
     * 商品排序，不填写，默认按后添加的在前
     */
    private Integer sort;
    /**
     *
     */
    private BigDecimal minPrice;
    /**
     *
     */
    private BigDecimal maxPrice;
    /**
     * 投放的真实库存总数
     */
    @NotNull(message = "真实库存不能为空")
    private Integer realStockTotal;
    /**
     * 初始化销量
     */
    @NotNull(message = "初始化销量不能为空")
    private Integer initSaleNum;
    /**
     * 真实销量
     */
    private Integer realSaleNum;
    /**
     * 输出销量(初始化销量+真实销量)
     */
    private Integer resultSaleNum;
    /**
     * 成团总人数
     */
    @NotNull(message = "成团总人数不能为空")
    @Min(value = 2, message = "成团总人数不能少于2人")
    private Integer groupPeopleNum;
    /**
     * 剩余库存(real_stock_total-result_sale_num)
     */
    private Integer residueStockTotal;

    /**
     * 商品sku信息
     */
    @NotNull(message = "商品sku信息不能为空")
    private List<GroupBuyGoodsSku> groupBuyGoodsSkuList;


}
